// JavaScript Document


$.fn.mapMarker=function(opt){
	var opts=$.extend(false,{},{
		mapImg:"img",
		iconClass:"itemIcon",
		iconList:[],
		click:function(){}
	},opt);
		
	var _this=this;
	
	var isZoom=false,
		isMove=false;
		
	var vWidth=$(_this).parent().outerWidth(),
		vHeight=$(_this).parent().outerHeight(),
		_thisWidth=$(_this).outerWidth(),
		_thisHeight=$(_this).outerHeight();
	
	$(_this).css({
		"left":(vWidth-_thisWidth)/2+"px",
		"top":(vHeight-_thisHeight)/2+"px"
	});
	
	var touchStartXy,
		_thisLeft,
		_thisTop,
		startX,
		startY;
		
	$(_this).parent()[0].addEventListener("touchstart",function(e){	
		
		
		//两根手指
		if(e.touches.length>=2){
			e.preventDefault();
			
			isZoom=true;
			isMove=false;
			
			var x1,x2,y1,y2;
			x1 = e.touches[0].pageX;
			y1 = e.touches[0].pageY;
			x2 = e.touches[1].pageX;
			y2 = e.touches[1].pageY;
			
			touchStartXy=_this.get_distance(x1,y1,x2,y2);
			
			_thisWidth=$(_this).outerWidth();
			_thisHeight=$(_this).outerHeight();
			
			_thisLeft=$(_this).offset().left;
			_thisTop=$(_this).offset().top;
			
			return;
		}
		
		isMove=true;				
		
		_thisLeft=$(_this).offset().left;
		_thisTop=$(_this).offset().top;
		
		startX=e.touches[0].pageX;
		startY=e.touches[0].pageY;
		
	},false);
	
	
	$(_this).parent()[0].addEventListener("touchmove",function(e){
		
		if (isZoom && e.touches.length >= 2)
		{
			e.preventDefault();
			
			var x1,x2,y1,y2;
			x1 = e.touches[0].pageX;
			y1 = e.touches[0].pageY;
			x2 = e.touches[1].pageX;
			y2 = e.touches[1].pageY;
			
			var touchMoveXy = _this.get_distance(x1, y1, x2, y2);
			
			var rate = touchMoveXy / touchStartXy;
			
			var w = _thisWidth * rate;
			var h = _thisHeight * rate;
			
			$(_this).css({
				"width":w+"px",
				"left":(_thisWidth-w)/2+_thisLeft+"px",
				"top":(_thisHeight-h)/2+_thisTop+"px"
			});
			
			return;
		}
		
		if (!isMove) return;
		
		var x = e.changedTouches[0].pageX - startX;
		var y = e.changedTouches[0].pageY - startY;
	
		$(_this).css({
			"left":(_thisLeft+x)+"px",
			"top":(_thisTop+y)+"px"
		});
		
		e.preventDefault();
		
	},false);
	
	
	$(_this).parent()[0].addEventListener("touchend",function(e){
		
		isZoom=false;
		isMove=false;
		
	},false);
	
	$(_this).off().on("click",function(e){
				
		var vWidth=$(this).outerWidth(),
			vHeight=$(this).outerHeight();
			
		var left=e.pageX-$(_this).offset().left,
			top=e.pageY-$(_this).offset().top;
		
		var o={
			left:left/vWidth*100,
			top:top/vHeight*100,
			x:left,
			y:top
		};
		
		opts.click.apply(null,[o]);
			
	});
	
	
	// 获取两点之间的距离
	_this.get_distance=function(x1, y1, x2, y2){
		return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2), 2);
	}

	
	var iconAll="";
	
	for(var i=0;i<opts.iconList.length;i++){
		iconAll+="<div class='"+opts.iconClass+" "+opts.iconList[i].type+"' style='left:"+opts.iconList[i].x+"%; top:"+opts.iconList[i].y+"%;' data-type='"+opts.iconList[i].type+"'></div>";
	}
	
	$(_this).append(iconAll);

};